package com.cardone.common.annotation;

import org.apache.commons.lang3.StringUtils;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 日志标注
 *
 * @author yaohaitao
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface RunAction {
    /**
     * 类别代码
     *
     * @return 类别代码
     */
    String afterTypeCode() default StringUtils.EMPTY;

    /**
     * 代码
     *
     * @return 代码
     */
    String afterCode() default StringUtils.EMPTY;

    /**
     * 消息
     *
     * @return 消息名称
     */
    String afterMessage() default StringUtils.EMPTY;

    /**
     * 类别代码
     *
     * @return 类别代码
     */
    String errorTypeCode() default StringUtils.EMPTY;

    /**
     * 代码
     *
     * @return 代码
     */
    String errorCode() default StringUtils.EMPTY;

    /**
     * 消息
     *
     * @return 消息名称
     */
    String errorMessage() default StringUtils.EMPTY;

    /**
     * 类别代码
     *
     * @return 类别代码
     */
    String beforeTypeCode() default StringUtils.EMPTY;

    /**
     * 代码
     *
     * @return 代码
     */
    String beforeCode() default StringUtils.EMPTY;

    /**
     * 消息
     *
     * @return 消息名称
     */
    String beforeMessage() default StringUtils.EMPTY;

    /**
     * afterBeanId
     *
     * @return afterBeanId
     */
    String[] afterBeanId() default "afterRunAction";

    /**
     * beforeBeanId
     *
     * @return beforeBeanId
     */
    String[] beforeBeanId() default "beforeRunAction";

    /**
     * errorBeanId
     *
     * @return errorBeanId
     */
    String[] errorBeanId() default "errorRunAction";

    String inputParameterBeanId() default "inputParameterFunction";

    String outputParameterBeanId() default "outputParameterFunction";
}
